package com.tedu.API.io;

import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.ImageWriteException;
import org.apache.commons.imaging.Imaging;
import org.junit.Test;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * IO流针对  图片
 *
 *项目结构：Maven互联网型项目
 *   功能：下载第三方jar包【高手写好类，压缩jar文件--引入--使用类】
 *   第三方jar官方下载地址：百度搜：mvn仓库
 *   http://mvnrepository.com/     搜索：commons-imaging
 *
 * Apache Commons Imaging 包   :针对IO流  图片传输流--封装
 *                              处理各种图像格式外置包
 *                              读入写出---JPEG,PNG GIF,TIFF等
 *  研究  第三方   xxx.jar   百度搜：   Apache  Commons  Imaging   使用
 *  类中存在大量静态块，通过类名直接调用
 *
 *
 *   使用 Apache  Commons  Imaging  jar【包--压缩文件叫法
 *                                     库--使用类叫法
 *                                     】
 */
public class imageFile {
    /**
     * Imaging  提供一套读写图片流方法
     * 读：  getBufferedImage() 可以通过File文件路径找到一个图片
     *                                  并且打印图片信息【高宽】
     *      返回值：BufferedImage   缓冲图片流
     */
    @Test
    public void testIg() throws IOException, ImageReadException {
        //1.创建File文件类----找到图片：路径地址+图片全称
        File file=new File("2.png");
        //2.Imaging图片类，静态方法getBufferedImage()  获取图片信息
        BufferedImage bi=Imaging.getBufferedImage(file);

        //3.获取图片信息
        int height=bi.getHeight();
        int width=bi.getWidth();
        System.out.println("图片宽："+width+"高："+height);
    }
    /**
     * writeImage(读入图片,写出图片位置,图片格式,null)
     * 写出一个图片,先读入一张图片，然后再写出
     */
    @Test
    public void testWI() throws IOException, ImageReadException, ImageWriteException {
        //1.读入一张图片
        File file=new File("R-C.jpg");
        BufferedImage bi=Imaging.getBufferedImage(file);
        //2.写出图片路径+全称
        File desc=new File("maa.jpg");
        //3.Imaging类---调用静态方法
        //ImageFormats  类
        //version1   ImageFormat.format("png");指定图片格式
        //version2   ImageFormats.PNG    静态常量属性
        Imaging.writeImage(bi,desc, ImageFormats.PNG,null);
        System.out.println("写出成功~");
    }
}
